Convenience functions to position tooltips on icon view items or cells.
authorMatthias Clasen <mclasen@redhat.com>
Mon, 16 Jul 2007 14:04:35 +0000 (14:04 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 16 Jul 2007 14:04:35 +0000 (14:04 +0000)
2007-07-16  Matthias Clasen <mclasen@redhat.com>

        * gtk/gtk.symbols:
        * gtk/gtkiconview.h:
        * gtk/gtkiconview.c (gtk_icon_view_set_tooltip_item):
        (gtk_icon_view_set_tooltip_cell): Convenience functions to
        position tooltips on icon view items or cells.

svn path=/trunk/; revision=18473

ChangeLog
docs/reference/ChangeLog
docs/reference/gtk/gtk-sections.txt
gtk/gtk.symbols
gtk/gtkiconview.c
gtk/gtkiconview.h

index 1522931aca13ac6e16dd4658ee0cd272817d5d7f..23d362a5dfee0b06875d9ebfce0ed6a89afece22 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-16  Matthias Clasen <mclasen@redhat.com>
+
+       * gtk/gtk.symbols:
+       * gtk/gtkiconview.h:
+       * gtk/gtkiconview.c (gtk_icon_view_set_tooltip_item):
+       (gtk_icon_view_set_tooltip_cell): Convenience functions to
+       position tooltips on icon view items or cells.
+
 2007-07-14  Richard Hult  <richard@imendio.com>
 
        * gdk/quartz/gdkevents-quartz.c:
index c5f2f2c83cff2eae9c7a97abc4508748fcc9f032..7cacdb36f95550fed1490529ac7b2763111788d4 100644 (file)
@@ -1,9 +1,18 @@
+2007-07-16  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtk-sections.txt: Add icon view tooltip convenience functions.
+
 Thu Jul 12 18:12:04 2007  Tim Janik  <timj@imendio.com>
 
        * gdk/tmpl/threads.sgml: clarify section about gdk_threads_enter/
        gdk_threads_leave to be reworded in terms of events and to mention
        availability of gdk_threads_add_idle_full().
 
+2007-07-11  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/tmpl/gtkbindings.sgml: Add a paragraph about 
+       keybinding signals.
+
 2007-07-11  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/tmpl/gtkrange.sgml:
index 9fd970e1e36ad71e51908422891ddfb3e2a78959..c23430c0839f1ebfb1433939cb91d5aeea86ed8f 100644 (file)
@@ -4746,6 +4746,7 @@ gtk_cell_layout_get_type
 GtkCellRendererState
 GtkCellRendererMode
 GtkCellRenderer
+GtkCellRendererClass
 gtk_cell_renderer_get_size
 gtk_cell_renderer_render
 gtk_cell_renderer_activate
index 0d305ee69104661bd52ddda9ba417cb77ade24aa..a993db7767aad7d7d3a848e27a1e18263f215f53 100644 (file)
@@ -1886,6 +1886,8 @@ gtk_icon_view_set_drag_dest_item
 gtk_icon_view_get_drag_dest_item
 gtk_icon_view_get_dest_item_at_pos
 gtk_icon_view_create_drag_icon
+gtk_icon_view_set_tooltip_item
+gtk_icon_view_set_tooltip_cell
 #endif
 #endif
 
index 88d75543d418c2580f9a09ac6e5cd68bf056df0a..d8b0677f3c20be254f04794f9b33a328dc92cbcd 100644 (file)
@@ -4576,7 +4576,6 @@ gtk_icon_view_get_path_at_pos (GtkIconView *icon_view,
 {
   GtkIconViewItem *item;
   GtkTreePath *path;
-  gint px, py;
   
   g_return_val_if_fail (GTK_IS_ICON_VIEW (icon_view), NULL);
 
@@ -4643,6 +4642,85 @@ gtk_icon_view_get_item_at_pos (GtkIconView      *icon_view,
   return (item != NULL);
 }
 
+/**
+ * gtk_icon_view_set_tooltip_item:
+ * @icon_view: a #GtkIconView
+ * @tooltip: a #GtkTooltip
+ * @path: a #GtkTreePath
+ * 
+ * Sets the tip area of @tooltip to be the area covered by the item at @path.
+ * See also gtk_tooltip_set_tip_area().
+ * 
+ * Since: 2.12
+ */
+void 
+gtk_icon_view_set_tooltip_item (GtkIconView     *icon_view,
+                                GtkTooltip      *tooltip,
+                                GtkTreePath     *path)
+{
+  g_return_if_fail (GTK_IS_ICON_VIEW (icon_view));
+  g_return_if_fail (GTK_IS_TOOLTIP (tooltip));
+
+  gtk_icon_view_set_tooltip_cell (icon_view, tooltip, path, NULL);
+}
+
+/**
+ * gtk_icon_view_set_tooltip_cell:
+ * @icon_view: a #GtkIconView
+ * @tooltip: a #GtkTooltip
+ * @path: a #GtkTreePath
+ * @cell: a #GtkCellRenderer or %NULL
+ *
+ * Sets the tip area of @tooltip to the area which @cell occupies in
+ * the item pointed to by @path. See also gtk_tooltip_set_tip_area().
+ *
+ * Since: 2.12
+ */
+void
+gtk_icon_view_set_tooltip_cell (GtkIconView     *icon_view,
+                                GtkTooltip      *tooltip,
+                                GtkTreePath     *path,
+                                GtkCellRenderer *cell)
+{
+  GdkRectangle rect;
+  GtkIconViewItem *item = NULL;
+  GtkIconViewCellInfo *info = NULL;
+  g_return_if_fail (GTK_IS_ICON_VIEW (icon_view));
+  g_return_if_fail (GTK_IS_TOOLTIP (tooltip));
+  g_return_if_fail (cell == NULL || GTK_IS_CELL_RENDERER (cell));
+
+  if (gtk_tree_path_get_depth (path) > 0)
+    item = g_list_nth_data (icon_view->priv->items,
+                            gtk_tree_path_get_indices(path)[0]);
+  if (!item)
+    return;
+
+  if (cell)
+    {
+      info = gtk_icon_view_get_cell_info (icon_view, cell);
+      gtk_icon_view_get_cell_area (icon_view, item, info, &rect);
+    }
+  else
+    {
+      rect.x = item->x;
+      rect.y = item->y;
+      rect.width = item->width;
+      rect.height = item->height;
+    }
+  
+  if (icon_view->priv->bin_window)
+    {
+      gint x, y;
+
+      gdk_window_get_position (icon_view->priv->bin_window, &x, &y);
+      rect.x += x;
+      rect.y += y; 
+    }
+
+  gtk_tooltip_set_tip_area (tooltip, &rect); 
+}
 
 /**
  * gtk_icon_view_get_visible_range:
index 62780c3f817552f069110b6ce5d6d7a23f1adbb3..6aa35cea4de8cd2bb8c59c94029159d29e46f4bc 100644 (file)
@@ -23,6 +23,7 @@
 #include <gtk/gtktreemodel.h>
 #include <gtk/gtkcellrenderer.h>
 #include <gtk/gtkselection.h>
+#include <gtk/gtktooltip.h>
 
 G_BEGIN_DECLS
 
@@ -202,6 +203,15 @@ void    gtk_icon_view_convert_widget_to_bin_window_coords     (GtkIconView *icon
                                                                gint        *by);
 
 
+void    gtk_icon_view_set_tooltip_item                        (GtkIconView     *icon_view,
+                                                               GtkTooltip      *tooltip,
+                                                               GtkTreePath     *path);
+void    gtk_icon_view_set_tooltip_cell                        (GtkIconView     *icon_view,
+                                                               GtkTooltip      *tooltip,
+                                                               GtkTreePath     *path,
+                                                               GtkCellRenderer *cell);
+
+
 G_END_DECLS
 
 #endif /* __GTK_ICON_VIEW_H__ */